In traditional storage systems, a host sends a command to a storage system to store data at one or more logical block addresses. A controller of the storage system converts the logical block addresses to one or more physical addresses and places the data for the logical block addresses in an update memory block. The controller maintains the data in the update memory block until a frequency of updates to the update memory block decreases. At that time, the controller may store the data in a data block of the storage system.
Hosts may write to the memory card in determinable patterns while performing actions such as recording a video or taking a picture. During video recording, the host may choose to process the incoming video data every second, every five seconds, or in any other periodic interval, and write the data to the memory card with the same periodicity following the same write pattern. During picture capture, since the host is likely to capture consecutive pictures in the same resolution with the same settings, each picture is likely to follow similar write patterns.
Because controllers do not monitor data writes for write patterns, controllers may maintain data in update memory blocks for longer periods than necessary or write data from an update block into data blocks earlier than necessary As a result, controllers may perform more storage management operations, such as garbage collection operations, than necessary, thereby decreasing the endurance of the storage system. More advanced storage systems are desirable where a controller is able to detect write patterns in data written to a storage system and utilize a detected write pattern to more efficiently perform storage management operations.